package com.music.biz;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.music.entity.User;

public interface UserBiz {
	/**
	 * 读取所有用户
	 * 
	 * @return
	 */
	List<User> getAll();

	User getUserById(int id);
	
	/**
	 * 根据邮箱读取用户
	 * 
	 * @param email
	 * @return
	 */
	User fetchUserByEmail(String email);

	/**
	 * 根据用户身份读取用户
	 * 
	 * @param roleId
	 * @return
	 */
	List<User> getUsers(int roleId);

	/**
	 * 登陆
	 * 
	 * @param userName
	 * @param password
	 * @return
	 */
	User checkLogin(@Param("userName") String userName,
			@Param("password") String password);

	/**
	 * 根据用户名读取用户
	 * 
	 * @param username
	 * @return
	 */
	User fetchByUsername(String username);

	/**
	 * 注册
	 * 
	 * @param user
	 */
	void register(User user);

	/**
	 * 更新用户
	 * 
	 * @param user
	 */
	void update(User user);

	/**
	 * 删除用户
	 * 
	 * @param id
	 */
	void delete(int id);

	/**
	 * 检查用户是否存在
	 * 
	 * @param username
	 * @return
	 */
	List<User> checkUsername(String username);
}
